package com.netdisk.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 存储统计数据传输对象
 */
@Data
@ApiModel(value = "存储统计DTO", description = "存储统计数据传输对象")
public class StorageStatsDTO {


    @ApiModelProperty(value = "已使用存储空间(字节)")
    private Long used;

    @ApiModelProperty(value = "总存储空间(字节)")
    private Long total;

    @ApiModelProperty(value = "使用百分比")
    private Integer percentage;

    @ApiModelProperty(value = "文件数")
    private Integer fileCount;

    @ApiModelProperty(value = "文档数量")
    private Integer documents;

    @ApiModelProperty(value = "图片数量")
    private Integer images;

    @ApiModelProperty(value = "视频数量")
    private Integer videos;

    @ApiModelProperty(value = "音频数量")
    private Integer audio;
    
    @ApiModelProperty(value = "压缩包数量")
    private Integer archives;
    
    @ApiModelProperty(value = "代码文件数量")
    private Integer code;

    /**
     * 计算并返回使用量占总量的百分比
     *
     * @return 使用百分比（整数形式），如果总量为0则返回0
     */
    public Integer getPercentage() {
        // 处理总量为0的特殊情况，避免除零错误
        if (total == 0) {
            return 0;
        }

        // 计算使用百分比：(已用量*100)/总量
        return (int) ((used * 100) / total);
    }

} 